package top.lishuoboy.boot24.task.service;

import cn.hutool.core.date.DateUtil;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

import java.util.concurrent.TimeUnit;

/**
 * @author lishuoboy
 * @date 2022/3/23 14:47
 */
@Slf4j
@Service
public class ScheduleService {
    /**
     * @Scheduled + @EnableScheduling
     * 三个参数三选一
     * fixedRate:   间隔固定时长，上次开始至本次开始的间隔时长
     * fixedDelay:  间隔固定时长，上次结束至本次开始的间隔时长
     *
     * cron:
     * 字段       允许值         允许的特殊字符
     * 秒        0-59            , - * /
     * 分        0-59            , - * /
     * 小时       0-23            , - * /
     * 日期       1-31            , - * ? / L W C
     * 月份       1-12            , - * /
     * 星期       0-7或SUN-SAT。0,7是SUN  , - * ? / L C #
     */
    @Scheduled(cron = "*/10 * * * * *")
//    @Scheduled(fixedRate = 10, timeUnit = TimeUnit.SECONDS)
//    @Scheduled(fixedDelay = 10, timeUnit = TimeUnit.SECONDS)
    @SneakyThrows
    void scheduled() {
        log.warn(DateUtil.now());
        TimeUnit.SECONDS.sleep(3);
    }
}